在開發的過程中,溝通行為永遠是一件最難的事情
例如責任應該分割拉
發佈版本應該下tag拉
這些東西一但開發時程很緊就會被各種藉口給忽略掉
這時候就可以透過介面設計來規範行為
商業邏輯:將圖片跟標註輸出成特定格式
原本接口設計成
class PackFormat(abc.ABC):
@abc.abstractmethod
def export_pack_file():
return NotImplemented
這時候就會發現很多人會直接把邏輯寫成一大坨塞到這個function內
下comment請同事拆function還會得到一句
「這個專案很趕,來不及了,請先合併」
所以第二版的interface就改寫成
class PackFormat(abc.ABC):
@staticmethod
@abc.abstractmethod
def get_extension_name():
return NotImplemented
@abc.abstractmethod
def generate_content(self, frames):
return NotImplemented
@abc.abstractmethod
def format_content(self, content):
return NotImplemented
這時就可以強迫開發者將過於複雜的責任進行分離
中心思想就是
只要符合規則的開發方式會被獎勵,不符合規則的方法會被懲罰
就會比口頭倡議有用很多